دسته بندی ها
14:30 1400/06/05

هدایت کاربر به مسیر خاص بعد از نمایش پیغام گرافیکی توسط sweet alert

مشخصات سوال کننده :
کاربر : frisat     امتیاز کاربر : ‎−2     رتبه کاربر : 7080
دسته بندی : Asp.net Core جاوا اسکریپت جی کوئری SweetAlert

به این سوال امتیاز بدهید    ‎−3
تعداد بازدید این سوال : 3268
پاسخ دهنده : DiakoAspCore 03:37 1400/06/06

با سلام 

شما یه Button گذاشتی که اصلاً هیچ ارتباطی بین اون و کنترلر نداره . و فقط قراره یه Message رو نشون بده .

ویرایش شده در شنبه 6 شهریور 1400 ساعت 14:04:33
به این پاسخ امتیاز بدهید    0
امتیاز: 37 رتبه: 20
1 نظر
frisat : خب لطفا راهنمایی کنید چکار کنم.

امتیاز کاربر : ‎−2   رتبه کاربر : 7080   تاریخ ثبت : 12:42 1400/06/06
پاسخ دهنده : fateme 14:17 1400/06/06

احساس می کنم شما مشکل اصلیتون توی جی کوئری و استفاده از ایجکس هست. چون شما توی متن سوال گفتید میخواید اگر مدل شما معتبر بود یک پیغام نمایش داده بشه. خب نکته اول اینکه اگر شما میخواید مدلتون سمت سرور اعتبارسنجی بشه باید توسط دستورات Ajax مدل رو به کنترلر ارسال کنید و در اونجا توسط دستور زیر اعتبارسنجی رو انجام بدید. در کدهایی که قرار دادید هیچ نشانه ای از استفاده از ایجکس دیده نمیشه !!!

if (ModelState.IsValid) {
   //...
}

ارسال اطلاعات به سمت کنترلر توسط دستورات ایجکس

 

اگر هم قصد دارید مدل خودتون رو سمت کلاینت اعتبارسنجی کنید (که البته زیاد پیشنهاد نمیشه) خب دیگه در این صورت اصلا نیازی به دستورات موجود در کنترلر که نوشتید نیست. چون شما مدلتون رو در سمت کلاینت اعتبار سنجی میکنید و اگر صحیح بود یک پیغام گرافیکی نمایش می دید و کاربر رو به سمت مسیر خاصی که نیاز داشتید هدایت می کنید.

<script>   
    $('#btn-submit-btn').click(function () {
      if (("#txt1").val() == '' )
      {
          alert('مدل شما معتبر نیست');
          return false;
      }
        swal({
            title: "ارسال نامه",
            text: "نامه شما با موفقیت ارسال شد",
            type: 'success',
            showCancelButton: false,
            allowOutsideClick: false,
            confirmButtonColor: "green",
            confirmButtonText: "باشه"
        }).then(function () {
            window.location.href = "/Home/allPerson";
        });

    });

</script>

در مثال بالا فرض شده که txt1 یک input می باشد که در مدل داده ای شما موجود هست (چون شما هیچ اشاره ای به مدل داده ای خودتون نکردید). بنابراین کنترل کردیم که مقدارش خالی نباشه و اگر خالی بود یک پیغام نمایش دادیم.

 

نکته : ببینید اگر شما میخواید اطلاعات رو توسط ایجکس به سمت سرور ارسال کنید و در سمت سرور اعتبارسنجی کنید یا حتی اطلاعاتی در دیتابیس ثبت یا ویرایش کنید دقت کنید که return شما باید به صورت زیر باشد :

return json (new { status = "ok"});

 

ویرایش شده در شنبه 6 شهریور 1400 ساعت 14:18:33
به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
3 نظر
frisat : تصمیم گرفتم سمت کلاینت اعتبارسنجی کنم ولی alert که نوشتید نمایش داده نمیشه.ایدی ها رو هم ست کردم و مقدار input خالی هست ولی هیچ اخطاری نمیدهد؟

امتیاز کاربر : ‎−2   رتبه کاربر : 7080   تاریخ ثبت : 06:03 1400/06/06
saedbfd : اگر قصد دارید سمت کلاینت اعتبارسنجی کنید پس کدهایی که برای اکشن متد (سمت سرور) گذاشتید برای چی هست ؟ وقتی سمت کلاینت اعتبارسنجی می کنید در واقع هیچ اطلاعاتی به سمت سرور نباید ارسال بشه دیگه.

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 06:33 1400/06/06
hamdola : برای اعتبارسنجی سمت کلاینت نیازی به کدهای کنترلر نیست چون اصلا برنامه اونجا نمیره. فرمودید درست عمل نمیکنه کدهاتون. خب خطایی دارید؟ مشکل چی هست دقیقا ؟

امتیاز کاربر : 121   رتبه کاربر : 12   تاریخ ثبت : 10:02 1400/06/06
ادامه نظرات ...
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود